package com.hillky.core;

import java.util.concurrent.TimeUnit;

public class YrpcShutdownHook extends Thread{

    @Override
    public void run() {
         // 1. 打开挡板  (boolean 需要线程安全)
        ShutDownHandler.BAFFLE.set(true);

        // 2. 等待计数器归0（正常的请求处理结束）、 AtomicInteger
        // 等待归0，继续执行 countdownLatch,最多等十秒
        long start=System.currentTimeMillis();
        while (true){
            try {
                Thread.sleep(100);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            if(ShutDownHandler.REQUEST_COUNTER.sum()== 0L||System.currentTimeMillis()-start>10000){
                break;
            }
        }



        // 3. 阻塞结束后，放行。执行其他操作，如释放资源

    }
}
